草庐IT

objective-c - GCD 和异步 NSURLConnection

全部标签

c# - 异步等待文件创建

等待外部应用程序创建文件的最简洁方法是什么?asyncTaskdoSomethingWithFile(stringfilepath){//1.awaitforpathexists//2.Dosomethingwithfile} 最佳答案 因此,第一个关键点是您可以使用FileSystemWatcher在特定路径的文件系统事件更改时收到通知。例如,如果您希望在特定位置创建文件时收到通知,您可以找到。接下来,我们可以创建一个方法,该方法使用TaskCompletionSource在文件系统观察器触发相关事件时触发任务的完成。public

c# - 通过构建器模式使用异步任务

我目前使用构建器模式构建我的MVCView模型。varviewModel=builder.WithCarousel(),.WithFeaturedItems(3),.Build()我遇到的问题是当我必须对异步方法进行服务调用时。这意味着我的构建器方法必须返回Task而不是HomeViewModelBuilder.这阻止了我必须链接构建方法await他们。示例方法publicasyncTaskWithCarousel(){varcarouselItems=await_service.GetAsync();_viewModel.Carousel=carouselItems;returnth

c# - 异步任务<IEnumerable<T>> 抛出 "is not an iterator interface type"错误

仅当我使用async时,下面的代码才会抛出isnotaniteratorinterfacetypeawait并包装IEnumerable与任务。如果我删除asyncawait,它将与IEnumerable>一起使用.privateasyncTask>>GetTableDataAsync(CloudTablecloudTable,TableQuerytableQuery)whereT:ITableEntity,new(){TableContinuationTokencontineousToken=null;do{varcurrentSegment=awaitGetAzureTableDa

c# - 使用 WPF 在 C# 中异步加载 BitmapImage

使用WPF在C#中异步加载BitmapImage的最佳方法是什么? 最佳答案 我只是在研究这个,不得不投入我的两分钱,虽然在最初的帖子发布几年后(以防万一其他人来寻找我正在研究的同样的东西)。我有一个Image控件,需要使用Stream在后台加载它的图像,然后显示。我一直遇到的问题是BitmapSource、Stream源和Image控件都必须位于同一位置线程。在这种情况下,使用Binding并将其设置为IsAsynch=true将引发跨线程异常。BackgroundWorker非常适合WinForms,您可以在WPF中使用它,但我

c# - UOW - 在上一个异步操作完成之前,第二个操作在此上下文中开始

我正在尝试下面的代码,它有两个部分,一个是通过棱镜导航。当允许导航时,我会异步启动深度加载,但每次都有一个新的上下文。在后面的代码中,我想取消未完成此加载的挂起导航,但下面的代码甚至不起作用,所以取消是以后的事;-)导航逻辑:这里没有问题publicvoidOnNavigatedTo(NavigationContextnavigationContext){intrelatieId=(int)navigationContext.Parameters["RelatieId"];if(_relatie!=null&&_relatie.RelatieId==relatieId)return;l

c# - 纤程与异步等待

我正在加入一个C#项目,开发人员在其中大量使用Fibers.在这个项目之前我什至没有听说过它们并且以前使用过asyncawait和Threads和BackgroundWorker来进行我的多任务操作。今天我问他们为什么使用Fiber,主要开发人员说这样更容易调试。这意味着他知道特定函数来自哪个线程,甚至可以访问堆栈中更高层的变量。我想知道使用Fiber与使用新的asyncawait和使用Thread的优缺点是什么。PS:我们使用的是.Net4.5 最佳答案 IwasaskingthemwhytheyusedFibersandthem

c# - 将库重构为异步,如何避免重蹈覆辙?

我有这样一个方法:publicvoidEncrypt(IFilefile){if(file==null)thrownewArgumentNullException(nameof(file));stringtempFilename=GetFilename(file);using(varstream=newFileStream(tempFilename,FileMode.OpenOrCreate)){this.EncryptToStream(file,stream);file.Write(stream);}File.Delete(tempFilename);}不过,我想写另一个方法,非常相

c# - 无法添加对 'Microsoft Windows Installer Object Library' 的引用

我无法使用VS2012添加对“MicrosoftWindows安装程序对象库”的引用。任何想法,什么可能导致这个问题?当我尝试创建对COM组件的引用时,我收到此错误消息“无法添加对‘MicrosoftWindowsInstallerObjectLibrary’的引用”。VS工程为基础类库(c#x86) 最佳答案 在VisualStudio中转到引用>添加引用...>COM>浏览...>%WINDIR%\system32\msi.dll。在VS2012上为我工作。 关于c#-无法添加对'M

c# - 如何对 Object 类型的属性使用 ShouldSerialize[MemberName]() 方法?

我尝试使用Newtonsoft.Json中的ShouldSerialize方法来阻止没有为其属性分配新值的类型对象的属性。但我不知道如何实现它,所以请帮我解决这个问题......这是示例代码publicclassSample1{publicStringname{get;set;}publicintId{get;set;};}这是我的类,包含上述类作为其属性之一publicclassContainer{publicStringCname{get;set;}publicSample1Sample{get;set;};publicboolShouldSerializeSample(){//W

c# - 为什么我必须使用等待异步运行的方法。如果我不想在继续之前等待方法完成怎么办?

这个问题在这里已经有了答案:Fire-and-forgetwithasyncvs"oldasyncdelegate"(5个答案)关闭7年前。我整天都在翻阅MSDN文档,他们的异步编码理念让我感到困惑。据我了解,如果调用异步方法,调用异步方法的线程不会被阻塞。然而,async在示例中总是与await配对,这似乎否定了异步性,使得外部方法无论如何都必须等待代码执行。我不应该能够调用异步方法然后继续执行外部方法吗?我或多或少遇到过这种情况:voidreportSomethingHappened(info)-Collectinfo-HTTPPOSTinfotologgingserver(ie.